Skip to content

Windows 環境下的單節點 Elasticsearch 安裝指南

TLDR

  • 建議將 path.datapath.logs 設定在安裝目錄之外,以便於後續版本升級。
  • JVM 記憶體建議設定為系統可用記憶體的 50%,且 -Xms-Xmx 應設為相同數值以避免效能損耗。
  • network.host 設定為 0.0.0.0 可允許外部連線,但需注意安全性。
  • SSL 與 x.509 憑證路徑必須相對於 config 目錄,使用絕對路徑會導致服務無法啟動。
  • 憑證密碼應透過 elasticsearch-keystore 工具管理,而非直接寫入設定檔。
  • 若啟動後 cluster_uuid 顯示 _na_,請檢查 cluster.initial_master_nodes 設定。

基本設定與最佳實踐

YAML 設定檔 (config/elasticsearch.yml)

在進行基礎配置時,建議將資料與記錄檔路徑指向安裝目錄以外的位置,這能確保在進行小版本升級時,能直接將新安裝的 Elasticsearch 指向既有的資料目錄。

  • 節點與叢集:設定 node.name 以利識別;首次建立叢集時,必須設定 cluster.initial_master_nodes
  • 網路與 CORS:若需允許外部存取,將 network.host 設為 0.0.0.0。若有前端跨域需求,可啟用 http.cors.enabled 並設定 http.cors.allow-origin

JVM 記憶體調整 (config/jvm.options)

什麼情況下會遇到效能問題:當 JVM 頻繁進行記憶體重新分配時。

  • 建議做法:將 -Xms-Xmx 設定為相同數值。
  • 配置原則:記憶體總量不超過系統可用記憶體的 50%,並至少預留 2GB 給作業系統。若記憶體大於 32GB,建議設定為 31GB 以利用 JVM 的指標壓縮技術。

安全性設定:憑證管理

SSL/TLS 憑證配置

什麼情況下會遇到啟動錯誤:當在 elasticsearch.yml 中使用絕對路徑指定憑證位置時。

  • 驗證結果:憑證路徑必須相對於 config 目錄。
  • 憑證密碼管理:應使用 elasticsearch-keystore 將密碼加入 keystore,而非明文寫入設定檔:
    bash
    elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password

x.509 傳輸層加密

什麼情況下會遇到環境差異:在不同伺服器環境中,部分環境即使未設定 transport SSL 也能運作,但部分環境則強制要求設定。

  • 建議做法:若需啟用 xpack.security.transport.ssl,請確保正確設定 keystoretruststore 路徑,並將 verification_mode 設為 certificate

TIP

使用 elasticsearch-certutil http 產生的 http.p12 檔案已包含 CA 憑證,可同時作為 Keystore 與 Truststore 使用。系統預設會將 Truststore 指向 Keystore 的設定值。

WARNING

elasticsearch-certutil ca 產生的 CA 憑證檔案不可直接作為 Truststore 使用。此外,所有憑證路徑設定必須相對於 config 目錄,使用絕對路徑會導致服務啟動失敗。

使用者管理

使用內建工具管理存取權限:

  • 建立超級使用者
    bash
    elasticsearch-users useradd {username} -p {password} -r superuser
  • 注意事項:密碼長度需至少 6 碼。使用者資訊會儲存在 config/usersconfig/users_roles 檔案中。

服務啟動與註冊

若啟動後透過瀏覽器存取 http://localhost:9200 發現 cluster_uuid_na_,代表叢集初始化失敗,請務必檢查 cluster.initial_master_nodes 是否正確對應 node.name

  • 手動啟動:需以系統管理員權限執行 bin/elasticsearch.bat
  • 註冊 Windows 服務:執行 elasticsearch-service.bat install,並於服務管理員中將其設定為「自動」啟動,以確保系統重啟後服務能正常運作。

異動歷程

    • 初版文件建立。
    • 增加 x.509 憑證設定。
    • 補充 keystore 描述。